Conversation
- Remove Antigravity and Gitpod as stated supported editors - Add Open VSX compatibility table to README showing what works at each level - Add ADR 0017: additional editor support via MCP (planned) - Update ADR 0016 to reflect VS Code only (not 'any Open VSX editor') - Fix broken ADR 0017 anchor in roadmap - Update ADR count in README to 17 - Reword Open VSX callout in getting-started to be unambiguous
Relative path icon.png breaks on VS Marketplace and Open VSX which render the README as a remote webpage.
- Add crossProcessLock.ts: advisory lockfile (.memory/.lock) using fs.open('wx')
for atomic cross-process mutual exclusion; linear back-off, stale-lock cleanup
on startup (clearStaleLockOnStartup) and on dead PID/age > 10 s
- Stack cross-process lock over existing per-file promise queue via
withMemoryWriteLock() — single entry point used by appendMemory, upsertMemory,
deleteMemory, migrateFiles; no callers interact with either lock directly
- Add crossProcessLock.test.ts covering lock acquisition, contention, and
stale-lock recovery
- Add patchPlanAgent() in instructionFiles.ts: injects queryMemory + storeMemory
into the Copilot Chat Plan agent tools list and inserts a memory-context section
in the agent body on every activation (idempotent, silent no-op if absent)
- Call patchPlanAgent() on activate() and on reinit command
- Double default category limits: Instruction/Security 15→30,
Quirk/Preference/Decision 20→40; raise schema maximum 50→100; update fallback
in utils.ts and UI validation cap in memoryPanel.ts to match
- Update docs/architecture.md, docs/decisions.md, docs/api-reference.md,
docs/user-guide.md, both READMEs, and .memory files to reflect all changes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Three improvements landing in
1.1.0, plus a housekeeping fix:Two-tier write locking — memory file writes are now protected by a stacked cross-process advisory lockfile (
crossProcessLock.ts) on top of the existing per-file in-process promise queue. Prevents corruption when multiple VS Code windows or extension host restarts hit the same.memory/files concurrently.Plan agent patching — on every activation the extension injects
queryMemory+storeMemoryinto the Copilot Chat built-in Plan agent, and inserts a memory-context instructions block. Ensures the planning agent is automatically memory-aware without any user setup.Higher default category limits — defaults doubled (Instruction/Security 15→30, others 20→40) and the configurable ceiling raised from 50 to 100. Active projects were hitting limits too quickly.
Untrack
.memory/cleanup.log— the file was already in.gitignorebut had been previously committed; removed from the index so it no longer appears in diffs.Changes
extension/src/storage/crossProcessLock.tsfs.open('wx'), linear back-off, stale-lock cleanupextension/src/storage/crossProcessLock.test.tsextension/src/storage/markdownStore.tswithMemoryWriteLock()(stacks cross-process + per-file locks);clearStaleLockOnStartup()called fromensureMemoryDir()extension/src/instructionFiles.tspatchPlanAgent()— injects memory tools and instructions block into Plan agent file (idempotent, silent no-op if absent)extension/src/extension.tspatchPlanAgent()on activate and onreinitcommandextension/src/utils.tsextension/src/memoryPanel.tsextension/package.jsondefaultandmaximumfor all fivecategoryLimit.*settings; version1.0.0→1.1.0CHANGELOG.md[1.1.0]entrydocs/architecture.mddocs/decisions.mddocs/api-reference.mddocs/user-guide.mdextension/README.mdREADME.md.memory/decisions.md.memory/cleanup.log.gitignore)Testing
npm run buildpassesnpm testpasses (all tests green)crossProcessLock.test.tscovers: successful lock acquisition, concurrent contention (second caller waits), stale lock removal by age, stale lock removal by dead PID, andclearStaleLockOnStartup.patchPlanAgentverified manually — Plan agent file is updated on activation and idempotent on re-runs. Category limit changes verified via Settings UI — new defaults appear and values up to 100 are accepted.Documentation
docs/for architecture / API changesdocs/decisions.mdfor architectural decisionsMemory
.memory/decisions.md(or relevant category)Stored: two-tier write lock architecture, plan agent patching approach, updated category limit defaults.
Checklist
globalStatestring keys (used the constants file)vscode.lmcalls outsidelm.tsmarkdownDescriptionused for any new settings (notdescription)feat:,fix:,docs:,test:, etc.)